var CheckTypeEnum = { 
    None: 0, 
    NotNull: 1, 
    IsInt: 2, 
    IsIntNotNull : 3,
    IntGreatEqual : 4, 
    IntLessEqual : 5, 
    IntArea : 6, 
    IntAreaNotNull : 7, 
    IntGreatEqualZero : 8, 
    IntGreatEqualZeroNotNull : 9, 
    IsFloat : 10, 
    IsFloatNotNull:11,
    FloatGreatEqual : 12, 
    FloatGreatNotEqual:13,
    FloatGreatNotEqualNotNull:14,
    FloatLessEqual : 15, 
    FloatLessNotEqual:16, 
    FloatLessNotEqualNotNull:17,
    FloatArea : 18, 
    FloatAreaNotNull:19,
    FloatGreatEqualZero : 20, 
    IsDateTime : 21,
    IsDateTimeNotNull: 22,
    DateGreatEqual : 23, 
    DateLessEqual : 24, 
    DateLessEqualNotNull : 25,
    DateArea : 26, 
    IsEmail : 27,
    IsChinese : 28,
    LengthArea : 29,
    LengthLessEqual:30,
    RegExpression : 31
};

var CheckTypeEnum2 = { 
    None: "无", 
    NotNull: "非空", 
    IsInt: "整型", 
    IsIntNotNull : "整型非空",
    IntGreatEqual : "整型>=校验参数", 
    IntLessEqual : "整型<=校验参数", 
    IntArea : "整型介于校验参数之间", 
    IntAreaNotNull : "整型非空介于参数之间", 
    IntGreatEqualZero : "整型非负", 
    IntGreatEqualZeroNotNull : "整型非负数非空", 
    IsFloat : "浮点型", 
    IsFloatNotNull:"浮点型非空",
    FloatGreatEqual : "浮点型>=校验参数", 
    FloatGreatNotEqual:"浮点型>校验参数",
    FloatGreatNotEqualNotNull:"浮点型非空且>校验参数",
    FloatLessEqual : "浮点型<=校验参数", 
    FloatLessNotEqual:"浮点型<校验参数", 
    FloatLessNotEqualNotNull:"浮点型非空且<校验参数",
    FloatArea : "浮点型介于参数之间", 
    FloatAreaNotNull:"浮点型非空介于参数之间",
    FloatGreatEqualZero : "浮点型且非负数", 
    IsDateTime : "日期型",
    IsDateTimeNotNull: "日期型非空",
    DateGreatEqual : "日期型>=校验日期", 
    DateLessEqual : "日期型<=校验日期", 
    DateLessEqualNotNull : "日期型非空<=校验日期",
    DateArea : "日期型介于校验日期段", 
    IsEmail : "Email型",
    IsChinese : "中文",
    LengthArea : "字符串长度在要求范围内",
    LengthLessEqual : "字符串长度<=最大长度",
    RegExpression : "自定义正则表达式"
};



/**
* 去除多余空格函数
* trim:去除两边空格 lTrim:去除左空格 rTrim: 去除右空格
* 用法:
*     var str = "  hello ";
*     str = str.trim();
*/
String.prototype.trim = function()
{
    return this.replace(/(^[\s]*)|([\s]*$)/g, "");
}
String.prototype.lTrim = function()
{
    return this.replace(/(^[\s]*)/g, "");
}
String.prototype.rTrim = function()
{
    return this.replace(/([\s]*$)/g, "");
}

/**
*校验字符串是否为空
*返回值:
*如果不为空，定义校验通过，返回true
*如果为空，校验不通过，返回false               参考提示信息:输入域不能为空！
*/
function checkIsNotEmpty(str)
{
    if(str.trim()=="")
        return false;
    else
        return true;
}

/**
*校验字符串是否为整型
*返回值:
*如果为空，定义校验通过，      返回true
*如果字串全部为数字，校验通过，返回true
*如果校验不通过，              返回false     参考提示信息:输入域必须为数字！
*/
function checkIsInteger(str)
{
    //如果为空，则通过校验
    if(str == "")
        return true;
    if(/^(\-?)(\d+)$/.test(str))
        return true;
    else
        return false;
}


/**
*校验整型最小值
*str:要校验的串。  val:比较的值
*
*返回值:
*如果为空，定义校验通过，                返回true
*如果满足条件，大于等于给定值，校验通过，返回true
*如果小于给定值，                        返回false              参考提示信息:输入域不能小于给定值！
*/
function checkIntegerMinValue(str,val)
{
    //如果为空，则通过校验
    if(str == "")
        return true;
    if(typeof(val) != "string")
        val = val + "";
    if(checkIsInteger(str) == true)
    {
        if(parseInt(str,10)>=parseInt(val,10))
            return true;
        else
            return false;
    }
    else
        return false;
}

/**
*校验整型最小值
*str:要校验的串。  val:比较的值
*
*返回值:
*如果满足条件，大于等于给定值，校验通过，返回true
*如果小于给定值或为空，                        返回false              参考提示信息:输入域不能小于给定值！
*/
function checkIntegerMinValueNotNull(str,val)
{
    //如果为空，则不通过校验
    if(str == "")
        return false;
    if(typeof(val) != "string")
        val = val + "";
    if(checkIsInteger(str) == true)
    {
        if(parseInt(str,10)>=parseInt(val,10))
            return true;
        else
            return false;
    }
    else
        return false;
}


/**
*校验整型最大值
*str:要校验的串。  val:比较的值
*
*返回值:
*如果为空，定义校验通过，                返回true
*如果满足条件，小于等于给定值，校验通过，返回true
*如果大于给定值，                        返回false       参考提示信息:输入值不能大于给定值！
*/
function checkIntegerMaxValue(str,val)
{
    //如果为空，则通过校验
    if(str == "")
        return true;
    if(typeof(val) != "string")
        val = val + "";
    if(checkIsInteger(str) == true)
    {
        if(parseInt(str,10)<=parseInt(val,10))
            return true;
        else
            return false;
    }
    else
        return false;
}

/**
*校验整型最大值
*str:要校验的串。  val:比较的值
*
*返回值:
*如果满足条件，小于等于给定值，校验通过，返回true
*如果大于给定值或为空，                        返回false       参考提示信息:输入值不能大于给定值！
*/
function checkIntegerMaxValueNotNull(str,val)
{
    //如果为空，则不通过校验
    if(str == "")
        return false;
    if(typeof(val) != "string")
        val = val + "";
    if(checkIsInteger(str) == true)
    {
        if(parseInt(str,10)<=parseInt(val,10))
            return true;
        else
            return false;
    }
    else
        return false;
}


/**
*校验整型是否为非负数
*str:要校验的串。
*
*返回值:
*如果为空，定义校验通过，返回true
*如果非负数，            返回true
*如果是负数，            返回false               参考提示信息:输入值不能是负数！
*/
function isNotNegativeInteger(str)
{
    //如果为空，则通过校验
    if(str == "")
        return true;
    if(checkIsInteger(str) == true)
    {
        if(parseInt(str,10) < 0)
            return false;
        else
            return true;
    }
    else
        return false;
}

/**
*校验整型是否为非负数
*str:要校验的串。
*
*返回值:
*如果非负数，            返回true
*如果是负数或为空，            返回false               参考提示信息:输入值不能是负数！
*/
function isNotNegativeIntegerNotNull(str)
{
    //如果为空，则通过校验
    if(str == "")
        return false;
    if(checkIsInteger(str) == true)
    {
        if(parseInt(str,10) < 0)
            return false;
        else
            return true;
    }
    else
        return false;
}



/**
*校验字符串是否为浮点型
*返回值:
*如果为空，定义校验通过，      返回true
*如果字串为浮点型，校验通过，  返回true
*如果校验不通过，              返回false     参考提示信息:输入域不是合法的浮点数！
*/
function checkIsDouble(str)
{
    //如果为空，则通过校验
    if(str == "")
        return true;
    //如果是整数，则校验整数的有效性
    if(str.indexOf(".") == -1)
    {
        if(checkIsInteger(str) == true)
            return true;
        else
            return false;
    }
    else
    {
        if(/^(\-?)(\d+)(.{1})(\d+)$/g.test(str))
            return true;
        else
            return false;
    }
}
/**
*校验字符串是否为浮点型
*返回值:
*如果字串为浮点型，校验通过，  返回true
*如果为空或校验不通过，              返回false     参考提示信息:输入域不是合法的浮点数！
*/
function checkIsDoubleNotNull(str)
{
    //如果为空，则不通过校验
    if(str == "")
        return false;
    //如果是整数，则校验整数的有效性
    if(str.indexOf(".") == -1)
    {
        if(checkIsInteger(str) == true)
            return true;
        else
            return false;
    }
    else
    {
        if(/^(\-?)(\d+)(.{1})(\d+)$/g.test(str))
            return true;
        else
            return false;
    }
}

/**
*校验浮点型最小值
*str:要校验的串。  val:比较的值
*
*返回值:
*如果为空，定义校验通过，                返回true
*如果满足条件，大于等于给定值，校验通过，返回true
*如果小于给定值，                        返回false              参考提示信息:输入域不能小于给定值！
*/
function checkDoubleMinValue(str,val)
{
    //如果为空，则通过校验
    if(str == "")
        return true;
    if(typeof(val) != "string")
        val = val + "";
    if(checkIsDouble(str) == true)
    {
        if(parseFloat(str)>=parseFloat(val))
            return true;
        else
            return false;
    }
    else
        return false;
}

/**
*校验浮点型最小值
*str:要校验的串。  val:比较的值
*
*返回值:
*如果满足条件，大于等于给定值，校验通过，返回true
*如果小于给定值或为空，                        返回false              参考提示信息:输入域不能小于给定值！
*/
function checkDoubleMinValueNotNull(str,val)
{
    //如果为空，则不通过校验
    if(str == "")
        return false;
    if(typeof(val) != "string")
        val = val + "";
    if(checkIsDouble(str) == true)
    {
        if(parseFloat(str)>=parseFloat(val))
            return true;
        else
            return false;
    }
    else
        return false;
}


/**
*校验浮点型最小值
*str:要校验的串。  val:比较的值
*
*返回值:
*如果为空，定义校验通过，                返回true
*如果满足条件，大于给定值，校验通过，返回true
*如果小于等于给定值，                        返回false              参考提示信息:输入域不能小于给定值！
*/
function checkDoubleMinNotEqualValue(str,val)
{
    //如果为空，则通过校验
    if(str == "")
        return true;
    if(typeof(val) != "string")
        val = val + "";
    if(checkIsDouble(str) == true)
    {
        if(parseFloat(str)>parseFloat(val))
            return true;
        else
            return false;
    }
    else
        return false;
}

/**
*校验浮点型最小值
*str:要校验的串。  val:比较的值
*
*返回值:
*如果满足条件，大于给定值，校验通过，返回true
*如果小于等于给定值或为代，                        返回false              参考提示信息:输入域不能小于给定值！
*/
function checkDoubleMinNotEqualValueNotNull(str,val)
{
    //如果为空，则不通过校验
    if(str == "")
        return false;
    if(typeof(val) != "string")
        val = val + "";
    if(checkIsDouble(str) == true)
    {
        if(parseFloat(str)>parseFloat(val))
            return true;
        else
            return false;
    }
    else
        return false;
}


/**
*校验浮点型最大值
*str:要校验的串。  val:比较的值
*
*返回值:
*如果为空，定义校验通过，                返回true
*如果满足条件，小于等于给定值，校验通过，返回true
*如果大于给定值，                        返回false       参考提示信息:输入值不能大于给定值！
*/
function checkDoubleMaxValue(str,val)
{
    //如果为空，则通过校验
    if(str == "")
        return true;
    if(typeof(val) != "string")
        val = val + "";
    if(checkIsDouble(str) == true)
    {
        if(parseFloat(str)<=parseFloat(val))
            return true;
        else
            return false;
    }
    else
        return false;
}

/**
*校验浮点型最大值
*str:要校验的串。  val:比较的值
*
*返回值:
*如果满足条件，小于等于给定值，校验通过，返回true
*如果大于给定值或为空，                        返回false       参考提示信息:输入值不能大于给定值！
*/
function checkDoubleMaxValueNotNull(str,val)
{
    //如果为空，则不通过校验
    if(str == "")
        return false;
    if(typeof(val) != "string")
        val = val + "";
    if(checkIsDouble(str) == true)
    {
        if(parseFloat(str)<=parseFloat(val))
            return true;
        else
            return false;
    }
    else
        return false;
}

/**
*校验浮点型最大值
*str:要校验的串。  val:比较的值
*
*返回值:
*如果为空，定义校验通过，                返回true
*如果满足条件，小于给定值，校验通过，返回true
*如果大于等于给定值，                        返回false       参考提示信息:输入值不能大于给定值！
*/
function checkDoubleMaxNotEqualValue(str,val)
{
    //如果为空，则通过校验
    if(str == "")
        return true;
    if(typeof(val) != "string")
        val = val + "";
    if(checkIsDouble(str) == true)
    {
        if(parseFloat(str)<parseFloat(val))
            return true;
        else
            return false;
    }
    else
        return false;
}


/**
*校验浮点型最大值
*str:要校验的串。  val:比较的值
*返回值:
*如果满足条件，小于给定值，校验通过，返回true
*如果大于等于给定值或为空，                        返回false       参考提示信息:输入值不能大于给定值！
*/
function checkDoubleMaxNotEqualValueNotNull(str,val)
{
    //如果为空，则不通过校验
    if(str == "")
        return false;
    if(typeof(val) != "string")
        val = val + "";
    if(checkIsDouble(str) == true)
    {
        if(parseFloat(str)<parseFloat(val))
            return true;
        else
            return false;
    }
    else
        return false;
}

/**
*校验浮点型是否为非负数
*str:要校验的串。
*
*返回值:
*如果为空，定义校验通过，返回true
*如果非负数，            返回true
*如果是负数，            返回false               参考提示信息:输入值不能是负数！
*/
function isNotNegativeDouble(str)
{
    //如果为空，则通过校验
    if(str == "")
        return true;
    if(checkIsDouble(str) == true)
    {
        if(parseFloat(str) < 0)
            return false;
        else
            return true;
    }
    else
        return false;
}

/**
*校验字符串是否为日期型
*返回值:
*如果为空，定义校验通过，           返回true
*如果字串为日期型，校验通过，       返回true
*如果日期不合法，                   返回false    参考提示信息:输入域的时间不合法！（yyyy-MM-dd）
*/
function checkIsValidDate(str)
{
    //如果为空，则通过校验
    if(str == "")
        return true;
    //alert(str);
    var pattern = /^((\d{4})|(\d{2}))-(\d{1,2})-(\d{1,2})$/g;
    //var pattern = /^(\d{4})-(\d{2})-(\d{2})$/g;
    if(!pattern.test(str))
        return false;
    var arrDate = str.split("-");
    if(parseInt(arrDate[0],10) < 100)
        arrDate[0] = 2000 + parseInt(arrDate[0],10) + "";
    var date =  new Date(arrDate[0],(parseInt(arrDate[1],10) -1)+"",arrDate[2]);
    if(date.getFullYear() == arrDate[0]
       && date.getMonth() == (parseInt(arrDate[1],10) -1)
       && date.getDate() == arrDate[2])
        return true;
    else
        return false;
}

/**
*校验两个日期的先后
*返回值:
*如果其中有一个日期为空，校验通过,          返回true
*如果起始日期早于等于终止日期，校验通过，   返回true
*如果起始日期晚于终止日期，                 返回false    参考提示信息: 起始日期不能晚于结束日期。
*/
function checkDateEarlier(strStart,strEnd)
{
    if(strEnd=="today" || strEnd=="'today'"){
       var date=new Date();
       var tempY=date.getFullYear();
       var tempM=date.getMonth()+1;
       var tempD=date.getDate();
       strEnd=tempY+"-"+tempM+"-"+tempD;
    }
    if(checkIsValidDate(strStart) == false || checkIsValidDate(strEnd) == false)
        return false;
    //如果有一个输入为空，则通过检验
    if (( strStart == "" ) || ( strEnd == "" ))
        return true;
    var arr1 = strStart.split("-");
    var arr2 = strEnd.split("-");
    var date1 = new Date(arr1[0],parseInt(arr1[1].replace(/^0/,""),10) - 1,arr1[2]);
    var date2 = new Date(arr2[0],parseInt(arr2[1].replace(/^0/,""),10) - 1,arr2[2]);
    if(arr1[1].length == 1)
        arr1[1] = "0" + arr1[1];
    if(arr1[2].length == 1)
        arr1[2] = "0" + arr1[2];
    if(arr2[1].length == 1)
        arr2[1] = "0" + arr2[1];
    if(arr2[2].length == 1)
        arr2[2]="0" + arr2[2];
    var d1 = arr1[0] + arr1[1] + arr1[2];
    var d2 = arr2[0] + arr2[1] + arr2[2];
    if(parseInt(d1,10) > parseInt(d2,10))
       return false;
    else
       return true;
}


/**
*校验两个日期的先后
*返回值:
*如果起始日期早于等于终止日期，校验通过，   返回true
*如果起始日期晚于终止日期 或输入项为空，                 返回false    参考提示信息: 起始日期不能晚于结束日期。
*/
function checkDateEarlierNotNull(strStart,strEnd)
{

    if(strEnd=="today" || strEnd=="'today'"){
       var date=new Date();
       var tempY=date.getFullYear();
       var tempM=date.getMonth()+1;
       var tempD=date.getDate();
       strEnd=tempY+"-"+tempM+"-"+tempD;
    }
    if(checkIsValidDate(strStart) == false || checkIsValidDate(strEnd) == false)
        return false;
    //如果输入项值为空，则不通过检验
    if ( strStart == "" )
        return false;
    if ( strEnd == "" )
        return true;
    var arr1 = strStart.split("-");
    var arr2 = strEnd.split("-");
    var date1 = new Date(arr1[0],parseInt(arr1[1].replace(/^0/,""),10) - 1,arr1[2]);
    var date2 = new Date(arr2[0],parseInt(arr2[1].replace(/^0/,""),10) - 1,arr2[2]);
    if(arr1[1].length == 1)
        arr1[1] = "0" + arr1[1];
    if(arr1[2].length == 1)
        arr1[2] = "0" + arr1[2];
    if(arr2[1].length == 1)
        arr2[1] = "0" + arr2[1];
    if(arr2[2].length == 1)
        arr2[2]="0" + arr2[2];
    var d1 = arr1[0] + arr1[1] + arr1[2];
    var d2 = arr2[0] + arr2[1] + arr2[2];
    if(parseInt(d1,10) > parseInt(d2,10))
       return false;
    else
       return true;
}


/**
*校验字符串是否为email型
*返回值:
*如果为空，定义校验通过，           返回true
*如果字串为email型，校验通过，      返回true
*如果email不合法，                  返回false    参考提示信息:Email的格式不正確！
*/
function checkEmail(str)
{
    //如果为空，则通过校验
    if(str == "")
        return true;
    if (str.charAt(0) == "." || str.charAt(0) == "@" || str.indexOf('@', 0) == -1
        || str.indexOf('.', 0) == -1 || str.lastIndexOf("@") == str.length-1 || str.lastIndexOf(".") == str.length-1)
        return false;
    else
        return true;
}

/**
*校验字符串是否为中文
*返回值:
*如果为空，定义校验通过，           返回true
*如果字串为中文，校验通过，         返回true
*如果字串为非中文，             返回false    参考提示信息:必须为中文！
*/
function checkIsChinese(str)
{
    //如果值为空，通过校验
    if (str == "")
        return true;
    var pattern = /^([\u4E00-\u9FA5]|[\uFE30-\uFFA0])*$/gi;
    if (pattern.test(str))
        return true;
    else
        return false;
}

/**
* 计算字符串的长度，一个汉字两个字符
*/
String.prototype.realLength = function()
{
  return this.replace(/[^\x00-\xff]/g,"**").length;
}


/**
*校验字符串是否符合自定义正则表达式
*str 要校验的字串  pat 自定义的正则表达式
*返回值:
*如果为空，定义校验通过，           返回true
*如果字串符合，校验通过，           返回true
*如果字串不符合，                   返回false    参考提示信息:必须满足***模式
*/
function checkMask(str,pat)
{
    //如果值为空，通过校验
    if (str == "")
        return true;
    var pattern = new RegExp(pat,"gi")
    if (pattern.test(str))
        return true;
    else
        return false;
}

/**
*		综合校验函数
*		第一个参数:sID,控件ID值
*		第二个参数:iType,校验类型
*       第三个参数:sName,控件中文名称
*		第四个参数:值样式 'lVal,bVal'   lVal,最小值 bVal,最大值
*/
function CheckCtrl()
{
	var args=CheckCtrl.arguments;	

	if(args.length<3){		
		return true;
	}
	
	if(args.length==3)
	    return CheckCtrl2(1,args[0],args[1],args[2]);
	else
	    return CheckCtrl2(1,args[0],args[1],args[2],args[3]);
}

/**
*		综合校验函数
*       第一个参数:flag 0 值   1 ID
*		第二个参数:sVal,控件的值 或控件ID
*		第三个参数:iType,校验类型
*       第四个参数:sName,控件中文名称
*		第五个参数:值样式 'lVal,bVal'   lVal,最小值 bVal,最大值
*/
function CheckCtrl2()
{
	var args=CheckCtrl2.arguments;	

	if(args.length<4){		
		return true;
	}
	var flag=args[0];
	var sID,iType,sName,lVal,bVal;	
	sID=args[1].trim();
	iType=args[2];
	sName=args[3].trim();	
	var paras;
	var obj=null;
	var objVal;
	if(flag==1)
	{
    	obj=document.getElementById(sID);
    	objVal=obj.value.trim();
    }
    else
        objVal=sID;
	var strLen;	
	switch(iType)
	{
		case CheckTypeEnum.NotNull:	//校验字符串是否为空:
		case 'CheckTypeEnum.NotNull':
			if(!checkIsNotEmpty(objVal))
			{
				alert(sName +" 不能为空!");
				if(obj!=null)obj.focus();
				return false;
			}
			break;
		case CheckTypeEnum.IsInt: //校验字符串是否为整型或为空
		case 'CheckTypeEnum.IsInt':
			if(!checkIsInteger(objVal))
			{
				alert(sName + " 应为整数!");
				if(obj!=null)obj.focus();
				return false;
			}
			break;
		case CheckTypeEnum.IsIntNotNull: //校验字符串是否为整型且非空
		case 'CheckTypeEnum.IsIntNotNull':
			if(objVal == "")
		    {
		        alert(sName + " 不能为空!");
				if(obj!=null)obj.focus();
		        return false;
		    }
			if(!checkIsInteger(objVal))
			{
				alert(sName + " 应为整数!");
				if(obj!=null)obj.focus();
				return false;
			}	
			break;	
		case CheckTypeEnum.IntGreatEqual: //校验整型最小值		
		case 'CheckTypeEnum.IntGreatEqual':
			if(args.length < 5)
			{			
				return true;
			}
			lVal=args[4];
			if(!checkIntegerMinValue(objVal,lVal))
			{			
				alert(sName + " 应为整数且大于等于" + lVal + "!");
				if(obj!=null)obj.focus();
				return false;
			}
			break;
		case  CheckTypeEnum.IntLessEqual: //校验整型最大值		
		case 'CheckTypeEnum.IntLessEqual':
			if(args.length < 5)
			{
				return true;
			}	
			bVal=args[4];
			if(!checkIntegerMaxValue(objVal,bVal))
			{
				alert(sName + " 应为整数且小于等于" + bVal + "!");
				if(obj!=null)obj.focus();
				return false;
			}
			break;
		case CheckTypeEnum.IntArea: //校验整型最小值最大值
		case 'CheckTypeEnum.IntArea':
			if(args.length <=4 && args .length >0)
		    {
			    if(!checkIsInteger(objVal))
			    {
				    alert(sName + " 应为整数!");
				    if(obj!=null)obj.focus();
				    return false;
			    }
		    }
		    else
		    {
			    paras=args[4].split(",");	
			    if(paras.length<2)
				    return true;
			    lVal=paras[0].replace(/\'/g,"");
			    bVal=paras[1].replace(/\'/g,"");	
			    if(!checkIntegerMaxValue(objVal,bVal) || !checkIntegerMinValue(objVal,lVal))
			    {
				    alert(sName + " 应为整数且位于区间[" + lVal + "," + bVal + "]!");
				    if(obj!=null)obj.focus();
				    return false;
			    }
			}
			break;	
		case CheckTypeEnum.IntAreaNotNull: //校验整型最小值最大值、非空
		case 'CheckTypeEnum.IntAreaNotNull':
			if(args.length <=4 && args .length >0)
		    {
			    if(objVal == "")
		        {
		            alert(sName + " 不能为空!");
				    if(obj!=null)obj.focus();
		            return false;
		        }
			    if(!checkIsInteger(objVal))
			    {
				    alert(sName + " 应为整数!");
				    if(obj!=null)obj.focus();
				    return false;
			    }
		    }
		    else
		    {
			    paras=args[4].split(",");	
			    if(paras.length<2)
				    return true;
			    lVal=paras[0].replace(/\'/g,"");
			    bVal=paras[1].replace(/\'/g,"");	
			    if(!checkIntegerMaxValueNotNull(objVal,bVal) || !checkIntegerMinValueNotNull(objVal,lVal))
			    {
				    alert(sName + " 应为整数且位于区间[" + lVal + "," + bVal + "]!");
				    if(obj!=null)obj.focus();
				    return false;
			    }
			}
			break;	
		case CheckTypeEnum.IntGreatEqualZero: //校验整型是否为非负数
		case 'CheckTypeEnum.IntGreatEqualZero':
			if(!isNotNegativeInteger(objVal))
			{
				alert(sName + " 应为整数且大于等于零!");
				if(obj!=null)obj.focus();
				return false;
			}
			break;
		case CheckTypeEnum.IntGreatEqualZeroNotNull: //校验整型是否为非负数、非空
		case 'CheckTypeEnum.IntGreatEqualZeroNotNull':
			if(!isNotNegativeIntegerNotNull(objVal))
			{
				alert(sName + " 应为整数且大于等于零!");
				if(obj!=null)obj.focus();
				return false;
			}
			break;
		case CheckTypeEnum.IsFloat: //校验字符串是否为浮点型
		case 'CheckTypeEnum.IsFloat':
			if(!checkIsDouble(objVal))
			{
				alert(sName + " 应为浮点数!");
				if(obj!=null)obj.focus();
				return false;
			}
			break;
		case CheckTypeEnum.IsFloatNotNull: //校验字符串是否为浮点型且不得为空值
		case 'CheckTypeEnum.IsFloatNotNull':
			if(!checkIsDoubleNotNull(objVal))
			{
				alert(sName + " 应为浮点数且不能为空!");
				if(obj!=null)obj.focus();
				return false;
			}
			break;	
		case CheckTypeEnum.FloatGreatEqual: //校验浮点型最小值
		case 'CheckTypeEnum.FloatGreatEqual':
			if(args.length<5)
				return true;
			lVal=args[4];
			if(!checkDoubleMinValue(objVal,lVal))
			{
				alert(sName + " 应为浮点数且大于等于" + lVal + "!");
				if(obj!=null)obj.focus();
				return false;
			}
			break;	
		case CheckTypeEnum.FloatGreatNotEqual: //校验浮点型最小值
		case 'CheckTypeEnum.FloatGreatNotEqual':
			if(args.length<5)
				return true;
			lVal=args[4];
			if(!checkDoubleMinNotEqualValue(objVal,lVal))
			{
				alert(sName + " 应为浮点数且大于" + lVal + "!");
				if(obj!=null)obj.focus();
				return false;
			}
			break;	
		case CheckTypeEnum.FloatGreatNotEqualNotNull: //校验浮点型最小值且非空
		case 'CheckTypeEnum.FloatGreatNotEqualNotNull':
			if(args.length<5)
				return true;
			lVal=args[4];
			if(!checkDoubleMinNotEqualValueNotNull(objVal,lVal))
			{
				alert(sName + " 应为浮点数且大于" + lVal + "!");
				if(obj!=null)obj.focus();
				return false;
			}
			break;	
		case CheckTypeEnum.FloatLessEqual: //校验浮点型最大值
		case 'CheckTypeEnum.FloatLessEqual':
			if(args.length<5)
				return true;
			bVal=args[4];
			if(!checkDoubleMaxValue(objVal,bVal))
			{
				alert(sName + " 应为浮点数且小于等于" + bVal + "!");
				if(obj!=null)obj.focus();
				return false;
			}
			break;		
		case CheckTypeEnum.FloatLessNotEqual: //校验浮点型最大值
		case 'CheckTypeEnum.FloatLessNotEqual':
			if(args.length<5)
				return true;
			bVal=args[4];
			if(!checkDoubleMaxNotEqualValue(objVal,bVal))
			{
				alert(sName + " 应为浮点数且小于" + bVal + "!");
				if(obj!=null)obj.focus();
				return false;
			}
			break;	
		case CheckTypeEnum.FloatLessNotEqualNotNull: //校验浮点型最大值且非空
		case 'CheckTypeEnum.FloatLessNotEqualNotNull':
			if(args.length<5)
				return true;
			bVal=args[4];
			if(!checkDoubleMaxNotEqualValue(objVal,bVal))
			{
				alert(sName + " 应为浮点数且小于" + bVal + "!");
				if(obj!=null)obj.focus();
				return false;
			}
			break;	
		case CheckTypeEnum.FloatArea: //校验浮点最小值最大值
		case 'CheckTypeEnum.FloatArea':
		    if(args.length <=4 && args .length >0)
		    {
			    if(!checkIsDouble(objVal))
			    {
				    alert(sName + " 应为浮点数!");
				    if(obj!=null)obj.focus();
				    return false;
			    }
		    }
		    else{
			    paras=args[4].split(",");	
			    if(paras.length<2)
				    return true;
			    lVal=paras[0].replace(/\'/g,"");
			    bVal=paras[1].replace(/\'/g,"");
			    if(!checkDoubleMaxValue(objVal,bVal) || !checkDoubleMinValue(objVal,lVal))
			    {
				    alert(sName + " 应为浮点数且位于区间[" + lVal + "," + bVal + "]!");
				    if(obj!=null)obj.focus();
				    return false;
			    }
			}
			break;	
		case CheckTypeEnum.FloatAreaNotNull: //校验浮点最小值最大值且不为空值
		case 'CheckTypeEnum.FloatAreaNotNull':
		    if(args.length <=4 && args .length >0)
		    {
		        if(!checkIsDoubleNotNull(objVal))
			    {
				    alert(sName + " 应为浮点数且不能为空!");
				    if(obj!=null)obj.focus();
				    return false;
			    }
		    }
		    else 
		    {
			    if(args.length<5)
				    return true;
		    
			    paras=args[4].split(",");	
			    if(paras.length<2)
				    return true;
			    lVal=paras[0].replace(/\'/g,"");
			    bVal=paras[1].replace(/\'/g,"");
			    if(!checkDoubleMaxValueNotNull(objVal,bVal) || !checkDoubleMinValueNotNull(objVal,lVal))
			    {
				    alert(sName + " 应为浮点数且位于区间[" + lVal + "," + bVal + "]!");
				    if(obj!=null)obj.focus();
				    return false;
			    }
			}
			break;	
		case CheckTypeEnum.FloatGreatEqualZero: //校验浮点型是否为非负数
		case 'CheckTypeEnum.FloatGreatEqualZero':
			if(!isNotNegativeDouble(objVal))
			{
				alert(sName + " 应为浮点数且大于等于零!");
				if(obj!=null)obj.focus();
				return false;
			}
			break;	
		case CheckTypeEnum.IsDateTime: //校验字符串是否为日期型
		case 'CheckTypeEnum.IsDateTime':
			if(!checkIsValidDate(objVal))
			{
				alert(sName + " 应为日期型! 例:2008-01-01");
				if(obj!=null)obj.focus();
				return false;
			}
			break;		
		case CheckTypeEnum.IsDateTimeNotNull: //校验字符串是否为日期型且非空
		case 'CheckTypeEnum.IsDateTimeNotNull':
		    if(objVal == ""){
		        alert(sName + " 不能为空!");
				if(obj!=null)obj.focus();
		        return false;
		    }
			if(!checkIsValidDate(objVal))
			{
				alert(sName + " 应为日期型! 例:2008-01-01");
				if(obj!=null)obj.focus();
				return false;
			}
			break;			
		case CheckTypeEnum.DateGreatEqual: //控件日期大于指定日期
		case 'CheckTypeEnum.DateGreatEqual':
			if(args.length<5)
				return true;
			lVal=args[4];
			if(!checkDateEarlier(lVal,objVal))
			{
			    if(lVal=="today")lVal="今天";
				alert(sName + " 应为日期型且晚于等于" + lVal + "!");
				if(obj!=null)obj.focus();
				return false;
			}
			break;		
		case CheckTypeEnum.DateLessEqual: //控件日期小于指定日期
		case 'CheckTypeEnum.DateLessEqual':
			if(args.length<5)
				return true;
			bVal=args[4];
			if(!checkDateEarlier(objVal,bVal))
			{
			    if(bVal=="today")bVal="今天";
				alert(sName + " 应为日期型且早于等于" + bVal + "!");
				if(obj!=null)obj.focus();
				return false;
			}
			break;	
		case CheckTypeEnum.DateLessEqualNotNull: //控件日期小于指定日期、非空
		case 'CheckTypeEnum.DateLessEqualNotNull':
            if(args.length<5)
				return true;
		    else{
			    bVal=args[4];
			    if(objVal == ""){
		            alert(sName + " 不能为空!");
				    if(obj!=null)obj.focus();
		            return false;
		        }
			    if(!checkDateEarlierNotNull(objVal,bVal))
			    {
			        if(bVal=="today")bVal="今天";
				    alert(sName + " 应为日期型且早于等于" + bVal + "!");
				    if(obj!=null)obj.focus();
				    return false;
			    }
			}
			break;	
		case CheckTypeEnum.DateArea: //校验日期是否在日期段
		case 'CheckTypeEnum.DateArea':
			if(args.length <=4 && args .length >0)
		    {
		        if(objVal == ""){
		            alert(sName + " 不能为空!");
				    if(obj!=null)obj.focus();
		            return false;
		        }
			    if(!checkIsValidDate(objVal))
			    {
				    alert(sName + " 应为日期型! 例:2008-01-01");
				    if(obj!=null)obj.focus();
				    return false;
			    }
		    }
		    else{
			    paras=args[4].split(",");	
			    if(paras.length<2)
				    return true;
			    lVal=paras[0].replace(/\'/g,"");
			    bVal=paras[1].replace(/\'/g,"");
			    if(!checkDateEarlier(lVal,objVal) || !checkDateEarlier(objVal,bVal))
			    {
				    alert(sName + " 应为日期型且位于时间段[" + lVal + "," + bVal + "]!");
				    if(obj!=null)obj.focus();
				    return false;
			    }
			}
			break;				
		case CheckTypeEnum.IsEmail: //校验字符串是否为email型
		case 'CheckTypeEnum.IsEmail':
			if(!checkEmail(objVal))
			{
				alert(sName + " 应为Email格式!");
				if(obj!=null)obj.focus();
				return false;
			}
			break;			
		case CheckTypeEnum.IsChinese: //校验字符串是否为中文
		case 'CheckTypeEnum.IsChinese':
			if(!checkIsChinese(objVal))
			{
				alert(sName + " 应为中文字符!");
				if(obj!=null)obj.focus();
				return false;
			}
			break;	
		case CheckTypeEnum.LengthArea: //校验字符串长度是否在要求范围内
		case 'CheckTypeEnum.LengthArea':
			if(args.length<5)
				return true;
			paras=args[4].split(",");				
			if(paras.length<2)
				return true;
			lVal=paras[0].replace(/\'/g,"");
			bVal=paras[1].replace(/\'/g,"");
			strLen=objVal.replace(/[^\x00-\xff]/g,"**").length;
			if(strLen<lVal || strLen>bVal)
			{
				alert(sName + " 字符串长度应在指定区间[" + lVal + "," + bVal + "]!");
				if(obj!=null)obj.focus();
				return false;
			}
			break;			
		case CheckTypeEnum.LengthLessEqual://校验字符串最大长度
		case 'CheckTypeEnum.LengthLessEqual':
			if(args.length<5)
				return true;
			bVal=args[4];
			strLen=objVal.replace(/[^\x00-\xff]/g,"**").length;
			if(strLen>bVal)
			{
				alert(sName + " 字符串长度不能超过" + bVal + "个字符!");
				if(obj!=null)obj.focus();
				return false;
			}
			break;
		case CheckTypeEnum.RegExpression: //校验字符串是否符合自定义正则表达式
		case 'CheckTypeEnum.RegExpression':
			if(args.length<5)
				return true;
			lVal=args[4];
			if(!checkMask(objVal,lVal))
			{
				alert(sName  + " 不满足正则表达式 " + lVal + "!");
				if(obj!=null)obj.focus();
				return false;
			}
			break;			
	}
	return true;
}